using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._NetworkAnalystTools._NetworkDataset
{
    /// <summary>
    /// <para>Create Template From Network Dataset</para>
    /// <para>Creates a file containing the schema of an existing network dataset. This template file can then be used to create a new network dataset with the same schema.</para>
    /// <para>创建包含现有网络数据集方案的文件。然后，此模板文件可用于创建具有相同方案的新网络数据集。</para>
    /// </summary>    
    [DisplayName("Create Template From Network Dataset")]
    public class CreateTemplateFromNetworkDataset : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public CreateTemplateFromNetworkDataset()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_network_dataset">
        /// <para>Network Dataset</para>
        /// <para>The network dataset whose schema will be written to the output template file.</para>
        /// <para>将将其架构写入输出模板文件的网络数据集。</para>
        /// </param>
        /// <param name="_output_network_dataset_template">
        /// <para>Output Network Dataset Template</para>
        /// <para>The output file (.xml) that will contain the schema of the input network dataset.</para>
        /// <para>将包含输入网络数据集方案的输出文件 （.xml）。</para>
        /// </param>
        public CreateTemplateFromNetworkDataset(object _network_dataset, object _output_network_dataset_template)
        {
            this._network_dataset = _network_dataset;
            this._output_network_dataset_template = _output_network_dataset_template;
        }
        public override string ToolboxName => "Network Analyst Tools";

        public override string ToolName => "Create Template From Network Dataset";

        public override string CallName => "na.CreateTemplateFromNetworkDataset";

        public override List<string> AcceptEnvironments => ["workspace"];

        public override object[] ParameterInfo => [_network_dataset, _output_network_dataset_template];

        /// <summary>
        /// <para>Network Dataset</para>
        /// <para>The network dataset whose schema will be written to the output template file.</para>
        /// <para>将将其架构写入输出模板文件的网络数据集。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Network Dataset")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _network_dataset { get; set; }


        /// <summary>
        /// <para>Output Network Dataset Template</para>
        /// <para>The output file (.xml) that will contain the schema of the input network dataset.</para>
        /// <para>将包含输入网络数据集方案的输出文件 （.xml）。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Network Dataset Template")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _output_network_dataset_template { get; set; }


        public CreateTemplateFromNetworkDataset SetEnv(object workspace = null)
        {
            base.SetEnv(workspace: workspace);
            return this;
        }

    }

}